fee502a00b6267ab7b68d9650b062a1246f412de,h2o-algos/src/test/java/hex/optimization/L_BFGS_Test.java,L_BFGS_Test,testArcene,#,103
Before Change
beta[beta.length-1] = glmp.link(source.lastVec().mean());
L_BFGS.Result r1 = lbfgs.solve(solver, beta.clone());
lbfgs.setMaxIter(1000);
L_BFGS.Result r2 = lbfgs.solve(solver, r1.coefs, r1.ginfo, new L_BFGS.ProgressMonitor());
lbfgs = new L_BFGS();
L_BFGS.Result r3 = lbfgs.solve(solver, beta.clone());
assertEquals(r1.iter,20);
After Change
glmp._alpha = new double[]{0};
dinfo = new DataInfo(Key.make(),source, valid, 1, false, DataInfo.TransformType.STANDARDIZE, DataInfo.TransformType.NONE, true);
DKV.put(dinfo._key,dinfo);
GradientSolver solver = new GLMGradientSolver(glmp, dinfo, 1e-5,source.lastVec().mean(), source.numRows());
L_BFGS lbfgs = new L_BFGS().setMaxIter(20);
double [] beta = MemoryManager.malloc8d(dinfo.fullN()+1);
beta[beta.length-1] = glmp.link(source.lastVec().mean());
L_BFGS.Result r1 = lbfgs.solve(solver, beta.clone(), solver.getGradient(beta),new L_BFGS.ProgressMonitor(){
int _i = 0;
public boolean progress(double [] beta, GradientInfo ginfo){
System.out.println(++_i +":" + ginfo._objVal);
return true;
}
});
lbfgs.setMaxIter(50);
final int iter = r1.iter;
L_BFGS.Result r2 = lbfgs.solve(solver, r1.coefs, r1.ginfo, new L_BFGS.ProgressMonitor(){